package com.hub.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hub.dto.auth.RoleProfileParam;
import com.hub.entity.AuthRole;
import com.hub.utils.ApiResultObject;
import com.hub.model.auth.RoleProfileVo;
import com.hub.model.auth.TreeBean;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author hub
 * @since 2020-05-13
 */
public interface IAuthRoleService extends IBaseService<AuthRole> {

    /**
     * 根据userId查询角色
     * @param userId
     * @return
     */
    List<AuthRole> findByUserId(Long userId);

    /**
     * 查询角色列表
     * @param page
     * @param param
     * @return
     */
    IPage<AuthRole> getList(Page<AuthRole> page, AuthRole param);

    /**
     * 所有角色
     * @return
     */
    ApiResultObject all();

    /**
     * 获取菜单树
     * @return
     */
    List<TreeBean> getTreeBean();

    /**
     * 获取角色权限列表
     * @param roleId
     * @return
     */
    RoleProfileVo getRoleProfile(Long roleId);

    /**
     * 创建角色
     * @param param
     */
    ApiResultObject create(RoleProfileParam param);

    /**
     * 编辑角色
     * @param param
     * @return
     */
    ApiResultObject modify(RoleProfileParam param);

    /**
     * 删除角色
     * @param param
     */
    ApiResultObject delete(RoleProfileParam param);
}
